home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / A-Monthly Disks / (c)abm2.d64 / copier (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  5KB  |  148 lines

  1. 10 GOTO30
  2. 20 HI=INT(NU/256):LO=NU-HI*256:RETURN
  3. 30 IFY=0THENY=1:LOAD"FILECOPY.O",8,1
  4. 40 POKE51,.:POKE56,47:CLR:DIM F$(100),T$(100),EA(100),SA(100)
  5. 45 DD%=9:CLOSE2:OPEN2,9,15:CLOSE2:IFSTTHENDD%=8
  6. 46 IFDD%=9THENGOSUB2000
  7. 50 RB=1:GOSUB520:SA=12288
  8. 60 FL$="":F=32768
  9. 70 A=PEEK(F):IFA<>0THENFL$=FL$+CHR$(A):F=F+1:GOTO70
  10. 80 IFLEN(FL$)>16THENFL$=LEFT$(FL$,16)
  11. 90 OPEN2,8,2,"FILES ON SIDE "+SI$
  12. 100 INPUT#2,A$:I=ST:INPUT#2,NF$:NF=VAL(NF$):INPUT#2,NB$:NB=VAL(NB$)+1
  13. 110 FORX=1TONF:INPUT#2,F$(X),T$(X):NEXT
  14. 120 NF=NF+1:F$(NF)="LOADSTAR READER":T$(NF)="P"
  15. 130 IFA$<>FL$ANDI=0THEN100
  16. 140 IFA$=FL$THEN170
  17. 150 PRINT"ERROR....FILE "FL$" NOT FOUND IN FILE!":CLOSE2
  18. 160 STOP
  19. 170 CLOSE2
  20. 180 PRINT
  21. 190 PRINT:POKE198,.
  22. 200 :
  23. 210 :
  24. 220 D1=.
  25. 230 NU=SA:GOSUB20:D1=D1+1:D=D1:POKE12131,HI:POKE12135,LO:SA(D1)=SA
  26. 240 GOSUB670:PRINT"[154]READING:"F$(D)
  27. 250 OPEN1,8,2,F$(D):SYS12040:CLOSE1
  28. 260 EA(D1)=PEEK(832)+PEEK(833)*256:SA=EA(D1)+1
  29. 270 IF (EA(D1)<53248) AND (D1<NF) THEN 230
  30. 280 IF EA(D1)<53248 THEN 310
  31. 290 D1=D1-1:SA=12288:PRINT"[150]                            "
  32. 300 PRINT"                      "
  33. 310 IFDD%=9THEN340
  34. 315 PRINT"       INSERT DESTINATION DISK...      "
  35. 320 PRINT"    PRESS SPACE WHEN READY TO COPY.":POKE198,.
  36. 330 GETA$:IFA$<>" "THEN330
  37. 340 IFRBTHENPRINT"       [129]CHECKING # OF BLOCKS FREE"
  38. 350 IFRBTHENRB=.:GOSUB790
  39. 360 D2=D2+1:D=D2:GOSUB670
  40. 370 PRINT"[154]WRITING:"F$(D):GOSUB640
  41. 380 IF(MM)THEN420
  42. 390 NU=EA(D2):GOSUB20:POKE832,LO:POKE833,HI
  43. 400 NU=SA(D2):GOSUB20:POKE12131,HI:POKE12135,LO
  44. 410 OPEN1,DD%,2,F$(D)+","+T$(D)+",W":SYS12084:CLOSE1
  45. 420 IF D2<D1 THEN 360
  46. 430 IFDD%=9THEN460
  47. 435 PRINT"       INSERT [153]"DN$"..."
  48. 440 PRINT" PRESS SPACE WHEN READY TO CONTINUE.":POKE198,.
  49. 450 GETA$:IFA$<>" "THEN450
  50. 460 GOSUB600:IF(MM$<>DN$)THENGOSUB710:GOTO460
  51. 470 PRINT"[145][145]";:FORA=1TO2:PRINT"                                       ":NEXT
  52. 480 PRINT"[145][145][145]";:POKE832,.:POKE833,32
  53. 490 IF D1<NF THEN 230
  54. 500 GOSUB1030:REM  LOADING INSTRUCTIONS
  55. 510 GOTO1310
  56. 520 POKE53280,0:POKE53281,0
  57. 530 PRINTCHR$(142)"[147][213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201]";
  58. 540 PRINT"[221]       LOADSTAR PROGRAM COPIER        [221]";
  59. 550 PRINT"[221]   [154]BY:  MIKE MAYNARD & ALAN GARDNER   [221]";
  60. 560 PRINT"[202][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][203]";
  61. 570 FORA=217TO242:POKEA,PEEK(A)OR128:NEXT
  62. 580 GOSUB600:SI$=RIGHT$(DN$,1):MM$=DN$
  63. 590 PRINT" PLEASE WAIT FIVE MORE SECONDS... ":RETURN
  64. 600 OPEN15,8,15,"I0":OPEN8,8,8,"#"
  65. 610 PRINT#15,"UA:8 0 18 0"
  66. 620 PRINT#15,"B-P:8 144"
  67. 630 DN$="":FORA=1TO16:GET#8,A$:DN$=DN$+A$:NEXT:CLOSE8:CLOSE15:RETURN
  68. 640 OPEN15,DD%,15,"R0:"+F$(D)+"="+F$(D):INPUT#15,ER:CLOSE15
  69. 650 MM=.:IFER=63THENMM=1
  70. 660 RETURN
  71. 670 PRINT"";:FORA=1TO20:PRINT"                                       ":NEXT
  72. 680 RETURN
  73. 690 PRINT"[145][145][145][145][145][145]";:FORA=1TO6:PRINT"                                       "
  74. 700 NEXT:PRINT"[145][145][145][145][145]";:RETURN
  75. 710 PRINT"[145][145][159] "MM$"[154] IS NOT IN THE DRIVE."
  76. 720 PRINT"                                     "
  77. 730 PRINT" PUT [159]"MM$" [154]IN THE DRIVE AND"
  78. 740 PRINT"       PRESS SPACE [154]TO TRY AGAIN.":POKE198,.
  79. 750 GETA$:IFA$<>" "THEN750
  80. 760 PRINT"[145][145][145][145]";:FORA=1TO4:PRINT"                                      ":NEXT
  81. 770 PRINT"[145][145][145]":RETURN
  82. 780 REM CHECK # OF BLOCKS FREE
  83. 790 OPEN15,DD%,15,"I0":INPUT#15,ER:CLOSE15:IF(ER<20)OR(ER>24)THEN810
  84. 800 GOSUB670:PRINT" THE DISK IN THE DRIVE ISN'T FORMATTED.":GOTO910
  85. 810 OPEN15,DD%,15,"I0":OPEN8,DD%,8,"#"
  86. 820 PRINT#15,"UA:8 0 18 0":PRINT#15,"B-P:8 4"
  87. 830 BA=.:FORA=1TO35:IFA=18THENGET#8,A$:GOTO850
  88. 840 GET#8,A$:BA=BA+ASC(A$+CHR$(.))
  89. 850 FORB=1TO3:GET#8,A$:NEXT
  90. 860 NEXT:IFNB<BATHENCLOSE8:CLOSE15:RETURN
  91. 870 CLOSE8:CLOSE15
  92. 880 GOSUB670:PRINT"THERE'S NOT ENOUGH ROOM ON THIS DISK"
  93. 890 PRINT"FOR [150]"F$(D)" AND THE FILES"
  94. 900 PRINT"ASSOCIATED WITH IT."
  95. 910 PRINT"[158]             YOUR OPTIONS:"
  96. 920 PRINT"F[154]ORMAT A DISK FOR THIS PROGRAM"
  97. 930 PRINT"T[154]RY SAVING THIS PROGRAM ON ANOTHER DISK"
  98. 940 PRINT"Q[154]UIT (FORGET ABOUT COPYING IT)
  99. 950 [153]"PRESS FCONT, TCONT, OR QCONT.":[151]198,.
  100. 960 A[178][194](203):[139]A[179][177]21[175]A[179][177]22[175]A[179][177]62[167]960
  101. 970 [139]A[178]62[167][141]1250:[137]960
  102. 980 [139]A[178]22[167][153]"       FORCHECKING # OF BLOCKS FREE":[137]790
  103. 990 [153]"CONT     PUT DISK TO FORMAT IN DRIVE 0"
  104. 1000 [153]"    PRESS SPACECONT WHEN READY TO FORMAT":[151]198,.
  105. 1010 [161]A$:[139]A$[179][177]" "[167]1010
  106. 1020 [159]15,DD%,15,"N0:LOADSTAR PROGS,MM":[160]15:[137]790
  107. 1030 [141]670:[153]"         CONT-- FINISHED COPYING CONT--"
  108. 1040 [153]"CONTTO LOAD THIS PROGRAM FROM BASIC, ENTER:"
  109. 1050 [153]"LOAD "[199](34)F$(1)[199](34)",8"
  110. 1060 [153]"ON"[163]30)"CONTTHEN...":[153]"RUN"
  111. 1070 [153]"CONT      PLEASE MAKE NOTE OF THIS..."
  112. 1080 [153]"         PRESS SPACE CONTFOR MORE"
  113. 1090 [139][194](203)[179][177]60[167]1090
  114. 1100 [141]670:[153]""
  115. 1110 [153]"CONTTO READ ABOUT THIS PROGRAM FROM BASIC,"
  116. 1120 [153]"ENTER THE FOLLOWING:"
  117. 1130 [153]"LOAD "[199](34)"LOADSTAR READER"[199](34)",8,1   CONTTHEN..."
  118. 1140 [153]"NEW                          CONTTHEN..."
  119. 1150 [153]"SYS 679,"[199](34)"T."F$(1)[199](34)
  120. 1160 [153]"CONTUSE PCONT TO PAUSE, CCONT TO CONTINUE, AND"
  121. 1170 [153]"ACONT TO ABORT."
  122. 1180 [153]"CONT      PLEASE MAKE NOTE OF THIS..."
  123. 1190 [153]"   PRESS SPACE CONTTO RETURN TO LOADSTAR"
  124. 1200 [139][194](203)[179][177]60[167]1200
  125. 1210 [142]
  126. 1220 [159]3,8,3,"FILES ON SIDE 1"
  127. 1230 [129]I[178].[164]1:[161]#3,A$:I[178]ST:[153]A$;
  128. 1240 [130]:[160]3
  129. 1250 [153]" CONTARE YOU SURE YOU WANT TO QUIT? (YCONT/NCONT)":[151]198,.
  130. 1260 A[178][194](203):[139]A[179][177]25[175]A[179][177]39[167]1260
  131. 1270 [139]A[178]39[167][153]"ON                                     ":[153]"ONON";:[142]
  132. 1280 [153]"CONTPLACE OPEN"DN$" CONTIN THE DRIVE AND"
  133. 1290 [153]"PRESS SPACE CONTTO RETURN TO LOADSTAR":[151]198,.
  134. 1300 A[178][194](203):[139]A[179][177]60[167]1300
  135. 1310 [137]3000
  136. 2000 [153]"SYS   IS DRIVE 9 YOUR DESTINATION?  (Y/N)"
  137. 2010 [161]A$:[139]A$[179][177]"Y"[175]A$[179][177]"N"[167]2010
  138. 2020 [153]"                                         "
  139. 2030 [139]A$[178]"N"[167]DD%[178]8
  140. 2040 [142]
  141. 3000 [151]45,135:[151]46,27:[151]47,142:[151]48,27:[151]49,142:[151]50,27:[151]51,0
  142. 3010 [151]52,128:[151]53,0:[151]54,0:[151]55,0:[151]56,128:[156]
  143. 60000 [159]15,8,15,"R0:HELLO CONNECT=HELLO CONNECT":[132]15,ER:[160]15
  144. 60010 [139] ER[179][177]63 [167] [153]"LOAD":[128]
  145. 60020 A$[178]"HELLO CONNECT":Q$[178][199](34):[151]53281,7:[151]53280,7:[153]"LOAD"
  146. 60030 [153]"SYSLOAD"Q$A$Q$",8"
  147. 60040 [153]"RUN":[151]631,13:[151]632,13:[151]198,2:[162]
  148.